package org.divineryang.utils;

import org.divineryang.model.entity.system.SysUser;
import org.divineryang.model.entity.user.UserInfo;

/**
 * @program new-bee
 * @Description 对ThreadLocal进行封装
 * @Author Diviner Yang
 * @Date 2024/04/20 10:52
 * @Version 1.0
 */
public class AuthContextUtil {
    /**
     * 定义管理员的ThreadLocal
     */

    // 创建一个ThreadLocal对象
    private static final ThreadLocal<SysUser> threadLocal = new ThreadLocal<>() ;
    // 定义存储数据的静态方法
    public static void set(SysUser sysUser) {
        threadLocal.set(sysUser);
    }
    // 定义获取数据的方法
    public static SysUser get() {
        return threadLocal.get() ;
    }
    // 删除数据的方法
    public static void remove() {
        threadLocal.remove();
    }

    /**
     * 定义用户的ThreadLocal
     */
    private static final ThreadLocal<UserInfo> userInfoThreadLocal = new ThreadLocal<>() ;
    // 定义存储数据的静态方法
    public static void setUserInfo(UserInfo userInfo) {
        userInfoThreadLocal.set(userInfo);
    }
    // 定义获取数据的方法
    public static UserInfo getUserInfo() {
        return userInfoThreadLocal.get() ;
    }
    // 删除数据的方法
    public static void removeUserInfo() {
        userInfoThreadLocal.remove();
    }
}
